import request from '@/config/request'
import { ElMessage } from 'element-plus'
import router from '@/router'

/**
 * 获取当前登录管理员信息
 * @returns {Promise} 返回管理员信息
 */
export const getAdminInfo = () => {
  return request.get('/api/admin/info')
}

/**
 * 新增管理员账户
 * @param {Object} data - 管理员信息
 * @returns {Promise} 返回操作结果
 */
export const addAdmin = (data) => {
  return request.post('/api/admin/add', data)
}

/**
 * 修改管理员账户
 * @param {Object} data - 管理员信息
 * @returns {Promise} 返回操作结果
 */
export const updateAdmin = (data) => {
  return request.put('/api/admin/update', data)
}

/**
 * 删除管理员账户
 * @param {number} id - 管理员ID
 * @returns {Promise} 返回操作结果
 */
export const deleteAdmin = (id) => {
  return request.delete(`/api/admin/delete/${id}`)
}

/**
 * 查询管理员详情
 * @param {number} id - 管理员ID
 * @returns {Promise} 返回管理员详情
 */
export const getAdminById = (id) => {
  return request.get(`/api/admin/get/${id}`)
}

/**
 * 分页查询管理员列表
 * @param {Object} params - 查询参数
 * @returns {Promise} 返回管理员分页数据
 */
export const getAdminPage = (params) => {
  return request.get('/api/admin/page', { params })
    .catch(error => {
      if (error.response && error.response.status === 403) {
        ElMessage.error('您没有权限访问管理员模块')
        router.push('/home')
      }
      return Promise.reject(error)
    })
}

/**
 * 修改管理员状态
 * @param {number} id - 管理员ID
 * @param {number} status - 状态值（0-禁用，1-启用）
 * @returns {Promise} 返回操作结果
 */
export const updateAdminStatus = (id, status) => {
  return request.put(`/api/admin/updateStatus/${id}/${status}`)
    .catch(error => {
      if (error.response && error.response.status === 403) {
        ElMessage.error('您没有权限执行此操作')
        router.push('/home')
      }
      return Promise.reject(error)
    })
}
